/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package appbenedictoxvi;

import java.util.ArrayList;

/**
 *
 * @author JGAMEZ
 */
public class AdmProductoCompra {
    
    private ArrayList<ProductoCompra> productoCompras;

    public AdmProductoCompra() {
        
        productoCompras = new ArrayList<ProductoCompra>();
        
    }
    
    

    public void registrarProducto(String codigo, String descripcion, double precio) throws BusinessException {
        
        //Validar Datos
        
        validardatos(codigo,descripcion,precio);
        
        ProductoCompra productoCompra = new ProductoCompra(codigo, descripcion, precio);
        productoCompras.add(productoCompra);
        
        
    }

   public  ProductoCompra buscarproducto(String codigo) {
      for (ProductoCompra productoCompra : productoCompras)
          if (productoCompra.getCodigo().equals(codigo))
              return productoCompra;
      return null;
    }

    private void validardatos(String codigo, String descripcion, double precio) throws BusinessException {
        validardatosmandatorios(codigo,descripcion,precio);
        validarduplicidad(codigo);
    }

    private void validardatosmandatorios(String codigo, String descripcion, double precio) throws BusinessException {
        String mensaje="";
        if(codigo==null || codigo.isEmpty())
            mensaje+= "\nCodigo no puede ser vacio";
        if(descripcion==null || descripcion.isEmpty())
           mensaje += "\nNombre no puede ser vacio";
        if (precio <=0.00)
            mensaje += "\nPrecio debe ser mayor a Cero"; 
       //si hay mensaje que mostrar,lanzar la excepcion
        if (!mensaje.isEmpty())
           throw new BusinessException(mensaje);
    }

    private void validarduplicidad(String codigo)throws BusinessException {
      
      ProductoCompra productoCompra = buscarproducto(codigo);
      
      if (productoCompra !=null){
      String mensaje= "Código "+codigo + " duplicado";
      throw new BusinessException(mensaje);
      }
    }

    public void eliminarProducto(String codigo) {
            productoCompras.remove(codigo);
    }
    
    public  void eliminarProductoExistente(String codigo) throws BusinessException{
        for (ProductoCompra producto : productoCompras)
          if (producto.getCodigo().equals(codigo)){
          String mensaje= "Código "+codigo + " Existe No se Puede Borrar";
          throw new BusinessException(mensaje);
          }
     }
}













